package org.tp8.sampleapp.rule.model;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;

import org.tp8.sampleapp.model.AbstractModel;
import org.tp8.sampleapp.model.Course;
import org.tp8.sampleapp.model.Student;
import org.tp8.sampleapp.model.Teacher;

/**
 * The Class RuleResult.
 * 
 * the generic type
 * 
 * @param <T>
 *            the generic type
 */
@XmlRootElement(name = "ruleInput")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({ Student.class, Teacher.class, Course.class })
public class RuleInput<T extends AbstractModel<T>> {

	/** The session name. */
	@XmlElement
	private String sessionName;

	/** The model. */
	@XmlElement
	private T model;

	/**
	 * Gets the session name.
	 * 
	 * @return the sessionName
	 */
	public String getSessionName() {
		return sessionName;
	}

	/**
	 * Sets the session name.
	 * 
	 * @param sessionName
	 *            the sessionName to set
	 */
	public void setSessionName(String sessionName) {
		this.sessionName = sessionName;
	}

	/**
	 * Gets the model.
	 * 
	 * @return the model
	 */
	public T getModel() {
		return model;
	}

	/**
	 * Sets the model.
	 * 
	 * @param model
	 *            the model to set
	 */
	public void setModel(T model) {
		this.model = model;
	}

}
